/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.siseventos.managed;

import br.siseventos.dao.da.EventoDAO;
import br.siseventos.model.TbEvento;
import br.siseventos.view.util.MessageHelper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.event.ActionEvent;
import javax.servlet.ServletContext;

/**
 *
 * @author marcosnatanpacheco
 */
@ManagedBean(name = "relParticipantesBean")
@ViewScoped
public class RelatorioParticipantesBean {
    // Campos

    private TbEvento evento = null;
    private EventoDAO daoEvento = null;

    // Construtor
    public RelatorioParticipantesBean() {
        daoEvento = new EventoDAO();
    }
    // Getters e Setters

    public TbEvento getEvento() {
        return evento;
    }

    public void setEvento(TbEvento evento) {
        this.evento = evento;
    }

    public EventoDAO getDaoEvento() {
        return daoEvento;
    }

    public void setDaoEvento(EventoDAO daoEvento) {
        this.daoEvento = daoEvento;
    }

    public List<TbEvento> getEventos() {
        return daoEvento.consultarTodos();
    }

    // Actions e Listeners
    public void gerarRelatorio(ActionEvent e) {
        try {
            //MessageHelper.showGlobalMessage(FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath() + "/resources/relatorios/rel_participantes.jasper" , FacesMessage.SEVERITY_INFO);
            String relPath = ((ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext()).getRealPath("/") + "resources/relatorios/rel_participantes.jasper";
            Map<String, Object> parametros = new HashMap<String, Object>();
            parametros.put("ID_EVENTO", getEvento().getIdtEvento());
            //byte[] pdf = RelatorioHelper.gerarRelatorio(relPath, parametros, null);
            boolean f = 7 > 10;
        } catch (Exception ex) {
            MessageHelper.showGlobalMessage("Erro :(", FacesMessage.SEVERITY_ERROR);
        }

    }

    // Util
    public Converter getConversorEvento() {
        return new Converter() {

            public Object getAsObject(FacesContext context, UIComponent component, String value) {
                // Transformar string em objeto
                TbEvento e = null;

                try {
                    e = getDaoEvento().consultarPorIdt(Integer.parseInt(value));
                } catch (NumberFormatException ex) {
                }
                return e;

            }

            @Override
            public String getAsString(FacesContext context, UIComponent component, Object value) {
                // Transformar objeto em string
                String r = null;
                if (value instanceof TbEvento) {
                    r = ((TbEvento) value).getIdtEvento().toString();
                }
                return r;
            }
        };
    }
}
